package cn.zzz.openplatform.amap.model.weather;

import cn.hutool.core.annotation.Alias;
import cn.zzz.openplatform.amap.model.AmapOpenApiResponse;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.List;

/**
 * 高德天气预报响应
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class AmapWeatherInfoAllResponse extends AmapOpenApiResponse {
    private List<Forecast> forecasts;

    /**
     * 预报信息
     */
    @Data
    public static class Forecast {
        /**
         * 省份名
         */
        private String province;

        /**
         * 城市名
         */
        private String city;

        /**
         * 区域编码
         */
        private String adcode;

        /**
         * 预报发布时间
         */
        private String reporttime;

        /**
         * 预报数据list结构，元素cast,按顺序为当天、第二天、第三天的预报数据
         */
        private List<Cast> casts;
    }

    /**
     * 预报元素
     */
    @Data
    public static class Cast {
        /**
         * 日期
         */
        private String date;

        /**
         * 星期几
         */
        private String week;

        /**
         * 白天天气现象
         */
        private String dayweather;

        /**
         * 晚上天气现象
         */
        private String nightweather;

        /**
         * 白天温度
         */
        private String daytemp;

        /**
         * 晚上温度
         */
        private String nighttemp;

        /**
         * 白天风向
         */
        private String daywind;

        /**
         * 晚上风向
         */
        private String nightwind;

        /**
         * 白天风力
         */
        private String daypower;

        /**
         * 晚上风力
         */
        private String nightpower;

        /**
         * 白天温度
         */
        @Alias("daytemp_float")
        private String daytempFloat;

        /**
         * 晚上温度
         */
        @Alias("nighttemp_float")
        private String nighttempFloat;
    }
}
